// signal_fork.c
#include <stdio.h>
#include <signal.h>
#include <unistd.h>

void sigHandler(int signum) {
    printf("Received signal: %d in PID: %d\n", signum, getpid());
}

int main() {
    signal(SIGUSR1, sigHandler);
    pid_t pid = fork();
    if (pid == 0) {
        // 子进程
        sleep(1);
        kill(getppid(), SIGUSR1);
        exit(0);
    } else {
        // 父进程
        sleep(2);
    }
    return 0;
}
